package lab2;


public class PhanSo implements Comparable<PhanSo>{
    private int tuso;
    private int mauso;
    
    public PhanSo() {
            this.tuso = 0;
            this.mauso = 1;
    }
    
    public PhanSo(int tuso, int mauso) {
            this.tuso = tuso;
            this.mauso = mauso;
            if( this.mauso <0) {
                this.tuso *= (-1);
                this.mauso *= (-1);
            }
    }
    
    public int getTuso() {
            return tuso;
    }

    public void setTuso(int tuso) {
            this.tuso = tuso;
    }
    
    public int getMauso() {
            return mauso;
    }
    
    public void setMauso(int mauso) {
            this.mauso = mauso;
    }
    
    public int UCLN(int a, int b) {
            while(a != b) {
                    a = Math.abs(a);
                    b = Math.abs(b);
                    if(a > b) a -= b;
                    else b -= a;
            }
            return a;
    }
    
    public void ToiGian() {
            int temp = UCLN(this.tuso, this.mauso);
            this.tuso /=temp;
            this.mauso /= temp;
            if( this.mauso <0) {
                    this.tuso *= (-1);
                    this.mauso *= (-1);
            }
            this.Xuat();
    }
    
    public void NghichDao() {
            int temp = this.tuso;
            this.tuso = this.mauso;
            this.mauso = temp;
            if( this.mauso <0) {
                this.tuso *= (-1);
                this.mauso *= (-1);
            }
            this.Xuat();
    }
    
    public void Cong(PhanSo u) {
            PhanSo tong = new PhanSo();
            int temp = UCLN(this.mauso, u.mauso);
            int bcnn = this.mauso * u.mauso / temp;
            tong.tuso = bcnn / this.mauso * this.tuso + bcnn / u.mauso * u.tuso;
            tong.mauso = bcnn;
            tong.ToiGian();
    }
    
    public void Tru(PhanSo u) {
            PhanSo hieu = new PhanSo();
            int temp = UCLN(this.mauso, u.mauso);
            int bcnn = this.mauso * u.mauso / temp;
            hieu.tuso = bcnn / this.mauso * this.tuso - bcnn / u.mauso * u.tuso;
            hieu.mauso = bcnn;
            hieu.ToiGian();
    }
    
    public void Nhan(PhanSo u) {
            PhanSo tich = new PhanSo();
            tich.tuso = this.tuso * u.tuso;
            tich.mauso = this.mauso * u.mauso;
            tich.ToiGian(); 
    }
    
    public void Chia(PhanSo u) {
            PhanSo thuong = new PhanSo();
            thuong.tuso = this.tuso * u.mauso;
            thuong.mauso = this.mauso * u.tuso;
            thuong.ToiGian();       
    }
    
    public void Xuat() {
            System.out.println(String.valueOf(this.tuso) + "/" + String.valueOf(this.mauso));
    }
    
    @Override
    public int compareTo(PhanSo o) {   
    	double a= this.tuso/this.mauso;
    	double b=o.tuso/o.mauso;
    	if(Math.abs(a-b)<0.0001)
            return 0;
    	else return 1;
    }

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            PhanSo t = new PhanSo(4, 6);
            PhanSo t2 = new PhanSo(9, 7);
            t.ToiGian();
            int c= t.compareTo(t2);
            if(c==1)
                    System.out.println("Greater");
            if(c==-1)
                    System.out.println("Less");
            if(c==0)
                    System.out.println("Equal");
    }
}